在计算机领域过去十年间所取得的成就中,我可能会把机器学习看作是产生出了最引人注目进展的领域。在过去的6~8年中,它在计算机视觉、模式识别和机器翻译等工具开发方面取得了巨大成功。对许多人来说,这一成功是出人意料的,因为它代表了神经网络思想发展的第三次主要尝试。
前两次的尝试并不是很成功,研究人员对失败原因的看法也有分歧。很多人指出,在当时很少有研究人员有足够的算力来完成机器学习所需的计算。很显然,当时我们没有有效的机器学习算法。
发生在20世纪50年代的第一次努力可以追溯到约翰·冯·诺伊曼早期关于计算机的著作。在那些论文中,冯·诺伊曼所建议的计算机中使用的开关元件与大脑中的神经元非常相似。这一模型很简单,但是它需要研究人员确定大量的数学参数。每一个人工神经元都有固定数目的输入,并将它们与权重或参数结合来产生输出。对于单个的神经元,很容易设置参数来确定一个简单的函数图像。然而对于这些神经元组成的网络来说,这项任务要困难得多。如何快速地确定这些参数成为了机器学习中的一个核心问题。
机器学习将计算机研究人员分成了两个阵营。第一阵营遵循上述观点,认为构建智能计算机的最佳方式是直接模拟大脑。麻省理工学院著名教授马文·明斯基(Marvin Minsky)是该阵营的早期成员。1954年当他还是一名学生的时候,就写出了关于“神经网络和大脑模型问题”的论文。
第二阵营则认为这是一项并不成熟的,甚至在最坏的情况下可以说是近乎愚蠢的工作。他们认为存在一个符号系统,一套逻辑,可以对人类的思维进行建模。我们所要做的就是找到这套逻辑。这次努力大约在1970年结束,教授们由于在这方面的研究缺乏进展而感到沮丧,纷纷转向其他技术路线。马文·明斯基写作的《感知机》一书[1],由于指出了神经网络模型的一些弱点,加速了该领域的沉寂。
第一次努力失败后不久,第二次努力就开始了,尽管花了将近15年时间才到达成熟期。在1975年,保罗·韦伯斯(Paul Werbos)提出了多层神经网络的概念,由单个开关元件或神经元组成多层网络,并使用大型数据集来帮助识别特定模式。在此基础上,他使用这种网络来解决一个统计优化问题。他需要为每个开关元件设置参数值,以使得整个网络可以识别特定的模式并拒绝不符合该模式的数据。这项工作在数据筛选等领域取得了成功并得以应用,但是在20世纪90年代初失去了活力。因为它需要太多的算力来构建有用、可靠和强大的工具。
第三次努力始于21世纪初。据加利福尼亚大学人工智能研究人员吉填德拉·马利克(Jitendra Malik)介绍[4],它借用了“第二次浪潮的主体框架”。然而这一次努力有三个之前所不具备的优势。首先,人们拥有了便宜的高速处理器,可用于搭建神经网络和设置参数。其次,人们在大型数据集、数据挖掘和其他可用于总结复杂高维数据集的工具方面积攒了近二十年的经验。第三,人们对神经网络的统计特性以及存在不确定性情况下的函数优化有了更深入的理解。
神经网络在计算机视觉上的应用也许最能说明机器学习研究变化的实质。计算机视觉的输入是一个图像,即一个二维的网格数据,然后将其映射到一个能概括图像的字符串:该字符串可以用来标识一处景观、一个人,甚至是一张特定的人脸。大部分这样的工作在20世纪90年代取得了一些成功。特别是研究人员构建了一个神经功能的基本网络模型,这个模型通常与猫的视觉理解联系在一起。该模型最早由Krizhevksy, Sutskever和Hinton在论文《深度卷积神经网络ImageNet分类》中提出[2]。
该论文描述了一个具有6000万个参数的神经网络,但它绝非一个杂乱无章的人工开关元件或神经元组成的网络。这一网络被划分成了不同的层次,对应不同的视觉处理过程。这些层会交替过滤数据和整合结构。过滤层会去除掉不感兴趣的信息,而联合层会识别图片中的主要元素。即使有了这些分层,去拟合6000万个参数仍然是一项艰巨的任务,这需要高速处理器以及高效的算法——统计梯度下降(statistical gradient descent)。
在公共媒体上,这种人工智能形式通常被称作“深度学习”,这一术语可能会产生双重误导。它经常被用来表明这些算法所学习的是深刻的或超出人类理解的事实,或者用来说明这些算法提供了一些现象的特殊解释。这两种说法都是不对的,“深度学习”里面的“深度”一词指的是神经网络的深度,即网络有很多层,而这些层中的参数难以拟合。当然,“学习”这个术语指的是解决这些机械和重复的任务。
然而,有趣的是深度机器学习已经开始取代旧的分析范式,尤其在统计建模的实践中。深度学习算法会尝试将一个关于网络的信息函数最大化,这被证明等价于将一个由模型定义的误差函数最小化。统计建模通常是在分析之前先确定一个模型,而机器智能允许机器非常广泛地探索模型,包括线性的、非线性的、连续的和非连续的。这是二者之间尤其是在经典意义上的主要区别。因此我们看到研究生转向机器学习,将它作为定量分析的一般形式,也就不足为奇了。
由于机器学习的巨大成功,可以下载到简单的通用神经网络软件。如果你拥有足够多的数据和足够强的计算能力,就可以用它来训练一个模型,该模型可以为常见的输入产生一致的输出,而无须对拟合数据的模型进行详细的数学描述。这些正是你所没有的,我们有百万量级的参数,但极少能解释这些参数的含义。
(译者:孙晓明,中科院计算所)
参考文献
[1] Minsky M L, Papert S. Perceptrons: an introduction to computational geometry[M]. The MIT Press, 1969:3356-62.
[2] Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc. 2012:1097-1105.
[3] Funding a Revolution [M]. National Academies Press, 1999.
[4] Malik J. Technical Perspective: What led computer vision to deep learning?[J]. Communications of the ACM, 2017, 60(6).
所有评论仅代表网友意见